package com.kgc.onlineLife.mapper;

import com.kgc.onlineLife.bean.Category;
import com.kgc.onlineLife.util.Page;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * Created On : 2022/4/15.
 * <p>
 * Author     : 张冲
 * <p>
 * Description: CategoryMapper
 */
@Repository
public interface CategoryMapper {

    /**
     * 随机查分类
     * @param id
     * @return
     */
    Category selectCategories(Integer id);

    /**
     * @author : 张冲
     * @date   : 2022/4/15
     * @param  : []
     * @return : java.util.List<com.kgc.onlineLife.bean.Category>
     * @description : 查询所有分类
     */
    List<Category> selectCategoryList();

    /**
     * 根据cid查分类名
     * @param cid
     * @return
     */
    Category selectCategory(Integer cid);

    /**
     * @author : nainai
     * @date   : 2022/4/15
     * @param  : []
     * @return : java.util.List<com.kgc.onlineLife.bean.Category>
     * @description : 查询所有商品分类详情，带分页
     */
    List<Category> selectCategoriesPage(Page page);

    /**
     * @author : nainai
     * @date   : 2022/4/17
     * @param  : [java.lang.String]
     * @return : java.util.List<com.kgc.onlineLife.bean.Category>
     * @description : 根据分类名称，模糊查询
     */
    List<Category> selectCategoriesByName(@Param("name") String name);

    /**
     * @author : nainai
     * @date   : 2022/4/16
     * @param  : [java.lang.Integer]
     * @return : int
     * @description : 根据id，删除分类
     */
    int deleteCategory(@Param("id") Integer id);

    /**
     * @author : nainai
     * @date   : 2022/4/17
     * @param  : [java.lang.String]
     * @return : java.util.List<com.kgc.onlineLife.bean.Category>
     * @description : 根据分类名称，不模糊
     */
    List<Category> selectCategoryByName(@Param("cname") String cname);

    /**
     * @author : nainai
     * @date   : 2022/4/17
     * @param  : [java.lang.String]
     * @return : int
     * @description : 新增商品分类
     */
    int insertCategory(@Param("cname") String cname);

    /**
     * @author : nainai
     * @date   : 2022/4/17
     * @param  : [java.lang.Integer]
     * @return : com.kgc.onlineLife.bean.Category
     * @description : 根据id，查询商品分类信息
     */
    Category selectCategoryById(@Param("cid") Integer cid);

    /**
     * @author : nainai
     * @date   : 2022/4/17
     * @param  : [java.lang.Integer]
     * @return : int
     * @description : 根据id，修改商品分类信息
     */
    int updateCategoryById(@Param("cid") Integer cid, @Param("cname") String cname);

    /**
     * @author : nainai
     * @date   : 2022/4/17
     * @param  : []
     * @return : java.util.List<com.kgc.onlineLife.bean.Category>
     * @description : 查询所有商品分类详情，不带分页
     */
    List<Category> selectCategoriesNoPage();

}
